package cn.feng.thinkInJava.a9_2_泛型.generics.a15_02_01;

//: generics/TupleTest.java
import net.mindview.util.*;

class Amphibian
{
}

class Vehicle
{
}

/**元组元组测试
 * @author fengyu
 * @date  2015年8月9日
 */
public class TupleTest
{
	static TwoTuple<String,Integer> f()
	{
		// Autoboxing converts the int to Integer:
		return new TwoTuple<String,Integer>("hi",47);
	}
	
	static ThreeTuple<Amphibian,String,Integer> g()
	{
		return new ThreeTuple<Amphibian,String,Integer>(new Amphibian(),"hi",47);
	}
	
	static FourTuple<Vehicle,Amphibian,String,Integer> h()
	{
		return new FourTuple<Vehicle,Amphibian,String,Integer>(new Vehicle(),new Amphibian(),"hi",47);
	}
	
	static FiveTuple<Vehicle,Amphibian,String,Integer,Double> k()
	{
		return new FiveTuple<Vehicle,Amphibian,String,Integer,Double>(new Vehicle(),new Amphibian(),"hi",47,11.1);
	}
	
	public static void main(String[] args)
	{
		TwoTuple<String,Integer> ttsi=f();
		System.out.println(ttsi);
		// ttsi.first = "there"; // Compile error: final ;final声明确实保护了public元素,在对象被构造出来之后,声明为final的元素便不能再被赋予其他的值了
		System.out.println(g());
		System.out.println(h());
		System.out.println(k());
	}
} /* Output: (80% match)
(hi, 47)
(Amphibian@1f6a7b9, hi, 47)
(Vehicle@35ce36, Amphibian@757aef, hi, 47)
(Vehicle@9cab16, Amphibian@1a46e30, hi, 47, 11.1)
*///:~
